package com.ruoyi.system.domain.aggregation;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 广告观看记录对象 ad_watch_record
 * 
 * @author ruoyi
 * @date 2025-01-10
 */
public class AdWatchRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录ID */
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 关联商家ID */
    @Excel(name = "关联商家ID")
    private Long merchantId;

    /** 广告平台 */
    @Excel(name = "广告平台", readConverterExp = "pangolin=穿山甲,taku=塔库")
    private String adPlatform;

    /** 广告类型 */
    @Excel(name = "广告类型", readConverterExp = "splash=开屏,video=激励视频,banner=横幅")
    private String adType;

    /** 广告ID */
    @Excel(name = "广告ID")
    private String adId;

    /** 观看时长（秒） */
    @Excel(name = "观看时长", readConverterExp = "秒")
    private Integer watchDuration;

    /** 是否完整观看 */
    @Excel(name = "是否完整观看", readConverterExp = "1=是,0=否")
    private Integer isComplete;

    /** 奖励金额（元） */
    @Excel(name = "奖励金额")
    private BigDecimal rewardAmount;

    /** 奖励积分 */
    @Excel(name = "奖励积分")
    private Integer rewardPoints;

    /** 观看时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "观看时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date watchTime;

    /** IP地址 */
    @Excel(name = "IP地址")
    private String ipAddress;

    /** 设备信息 */
    @Excel(name = "设备信息")
    private String deviceInfo;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setMerchantId(Long merchantId) 
    {
        this.merchantId = merchantId;
    }

    public Long getMerchantId() 
    {
        return merchantId;
    }
    public void setAdPlatform(String adPlatform) 
    {
        this.adPlatform = adPlatform;
    }

    public String getAdPlatform() 
    {
        return adPlatform;
    }
    public void setAdType(String adType) 
    {
        this.adType = adType;
    }

    public String getAdType() 
    {
        return adType;
    }
    public void setAdId(String adId) 
    {
        this.adId = adId;
    }

    public String getAdId() 
    {
        return adId;
    }
    public void setWatchDuration(Integer watchDuration) 
    {
        this.watchDuration = watchDuration;
    }

    public Integer getWatchDuration() 
    {
        return watchDuration;
    }
    public void setIsComplete(Integer isComplete) 
    {
        this.isComplete = isComplete;
    }

    public Integer getIsComplete() 
    {
        return isComplete;
    }
    public void setRewardAmount(BigDecimal rewardAmount) 
    {
        this.rewardAmount = rewardAmount;
    }

    public BigDecimal getRewardAmount() 
    {
        return rewardAmount;
    }
    public void setRewardPoints(Integer rewardPoints) 
    {
        this.rewardPoints = rewardPoints;
    }

    public Integer getRewardPoints() 
    {
        return rewardPoints;
    }
    public void setWatchTime(Date watchTime) 
    {
        this.watchTime = watchTime;
    }

    public Date getWatchTime() 
    {
        return watchTime;
    }
    public void setIpAddress(String ipAddress) 
    {
        this.ipAddress = ipAddress;
    }

    public String getIpAddress() 
    {
        return ipAddress;
    }
    public void setDeviceInfo(String deviceInfo) 
    {
        this.deviceInfo = deviceInfo;
    }

    public String getDeviceInfo() 
    {
        return deviceInfo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("merchantId", getMerchantId())
            .append("adPlatform", getAdPlatform())
            .append("adType", getAdType())
            .append("adId", getAdId())
            .append("watchDuration", getWatchDuration())
            .append("isComplete", getIsComplete())
            .append("rewardAmount", getRewardAmount())
            .append("rewardPoints", getRewardPoints())
            .append("watchTime", getWatchTime())
            .append("ipAddress", getIpAddress())
            .append("deviceInfo", getDeviceInfo())
            .toString();
    }
}
